home *** CD-ROM | disk | FTP | other *** search
- -> Join 1.1 : Joins list of x files into 1 big file using very little mem
- -> by Kyzer/CSG
-
- OPT OSVERSION=37
- PROC main()
- DEF args:PTR TO LONG,rdargs,files:PTR TO LONG,fc,inh,outh,size,buf,bufsz
- args:=[0,0,0]
- IF rdargs:=ReadArgs('FILE/M/A,AS=TO/K/A,BUF/N',args,NIL)
- IF args[2]=0
- bufsz:=20000 /* user didn't give a 'buf' arg */
- ELSE
- IF (bufsz:=Long(args[2]))<1024 THEN bufsz:=1024
- ENDIF
- files:=args[0]
- fc:=0
- IF (buf:=AllocMem(bufsz,0))
- IF (outh:=Open(args[1],NEWFILE))
- REPEAT
- IF inh:=Open(files[fc++],OLDFILE)
- REPEAT
- IF (size:=Read(inh,buf,bufsz))>0 THEN Write(outh,buf,size)
- UNTIL size<=0
- Close(inh)
- ENDIF
- UNTIL files[fc]=0
- Close(outh)
- ENDIF
- FreeMem(buf,bufsz)
- ENDIF
- FreeArgs(rdargs)
- ENDIF
- ENDPROC
- CHAR '$VER: Join 1.1 (3.12.95)',0
-